package com.mashuai.utils.toolkit.core.msInterfaceAuto.annotation;

import com.mashuai.utils.toolkit.core.msInterfaceAuto.scans.MsEntityScansRegistrar;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 加在层Entity类上，表示可对该表进行crud操作。
 * 注意：实体类一定要有对应的mapper层，不然无法实现crud托管，具体原因，详情mybatisplus的@MapperScan直接实现原理即可
 * 可通过配置 @MsScan(backPages = {"扫描的包名"})来对含有@MsCrud的类，在项目启动时候进行校验、一些数据缓存等。
 *
 * @author: mashuai
 * @ClassName: MsAsync
 */
@Import(MsEntityScansRegistrar.class)
@Component
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MsEntityScans {

    //需要扫描的包名字
    String[] basePackages() default {};
}
